01 动手部署一台 Linux 操作系统

准备您的工具

工具准备齐全后请一定要校验完整性!!!

下载地址:软件资源库 | 《Linux 就该这么学》 (linuxprobe.com)

注意

  • 虚拟机是能够让用户在一台真实物理机上同时模拟出多个操作系统的软件。一般来讲,当前主流的硬件配置足以胜任虚拟机的安装需要。
  • 建议大家无论经济条件是否允许,都不应该在学习期间把 Linux 系统部署到真机上面。因为在学习过程中免不了每天要 "折磨" 我们的操作系统,由此带来的数据丢失或者系统的重装也会让人头疼,还会浪费我们的宝贵时间。
  • 通过虚拟机软件安装的系统不仅可以模拟出硬件资源,把实验环境与真机文件分离以保证数据的安全,更酷的是当操作失误或配置出错导致系统异常的时候,可以快速把操作系统还原到出错前的快照状态—这大约只需要 5 ~ 10 秒(在真实的物理机上重装系统可能得至少 30 分钟)。

安装配置 VM 虚拟机

虚拟机的好处

  • 同时运行多个系统:VMware WorkStation 虚拟机 (简称 VM 虚拟机) 软件是一款桌面计算机虚拟软件,让用户能够在单一主机上同时运行多个不同的操作系统。
  • 数据独立:每个虚拟操作系统的磁盘分区、数据配置都是独立的,不用担心会影响到自己电脑中原本的数据。
  • 实用功能多:VM 还支持实时快照、虚拟网络、文件拖曳传输以及网络安装等方便实用的功能。
  • 专用局域网:还可以把多台虚拟机构成一个专用局域网,使用起来很方便。

img

img

Info

自定义虚拟机软件的安装路径。一般情况下无须修改安装路径,但如果您担心 C 盘容量不足,则可以考虑修改安装路径,将其安装到其他位置。

img

img

注意

  • 在第一次安装完虚拟机软件后,还不能立即安装 Linux 系统,因为还缺少重要的一步—设置硬件信息。
  • 设置硬件信息相当于为 Linux 系统设置一个硬件牢笼,限定它能够使用的最大硬盘和内存容量、CPU 核心数量、系统镜像位置、网络模式等硬件信息。
  • 大家可以想象成是自己去组装一台电脑,只有把虚拟机内系统的硬件资源都模拟出来(组装完毕)后才能正式步入 Linux 系统的安装之旅。

img

img

Info

  • 在近几年的讲课过程中真是遇到了很多不听话的学生,明明要求选择 "稍后安装操作系统",结果非要选择 "安装程序光盘映像文件",并把下载好的 RHEL 8 系统的镜像选中。这样一来,虚拟机会通过默认的安装策略部署最精简的 Linux 系统,而不会再向您询问安装有关的配置信息,导致最终系统与实验环境有很大的差别。
  • 填写 "虚拟机名称" 字段,名称可以自行发挥。建议为 "位置" 字段选择一个大容量的硬盘分区,最少要有 20GB 以上的空闲容量。

img

Info

  • 设置 CPU 处理器信息。设置 "处理器数量" 和 "每个处理器的内核数量",大家可以根据自身电脑的情况进行选择。可以在网络上搜索一下自己的 CPU 处理器的型号信息,或者在 Windows 系统中打开 "任务管理器",然后访问 "性能" 选项卡,该选项卡右下侧的逻辑处理器数量就是您的 CPU 内核数量。如果上述方法都不奏效,可以暂时将处理器和内核数量都设置成 1(见图 1),后期再随时修改,不影响实验。

  • 设置分配给虚拟机的内存值。如果物理机的内存小于 4GB,则建议分配给虚拟机 1GB;如果物理机的内存大于 4GB(不论是 8GB 还是更大),则建议分配给虚拟机 2GB,如图 2 所示。

img

Info

  • 设置网络类型

    • 使用桥接网络:相当于在物理机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。
    • 使用网络地址转换(NAT):让 VM 虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟的主机可以通过物理主机访问外网;在物理机中对应的物理网卡是 VMnet8。
    • 使用仅主机模式网络:仅让虚拟机的系统与物理主机通信,不能访问外网;在物理机中对应的物理网卡是 VMnet1。
  • 设置虚拟磁盘类型:这里我们选择工作中更常使用的 SATA 接口类型,如果选择了 IDE 与 NVMe 接口类型的磁盘,则在第 6 章的实验中磁盘名称不是 /dev/sda ,这容易让新手产生疑惑。

img

Info

  • 将虚拟机系统的 "最大磁盘大小" 设置为 20.0GB(默认值),这是限定系统能够使用的最大磁盘容量,并不是立即占满这部分空间。如果想让磁盘拥有更好的性能,这里可以选中 "立即分配所有磁盘空间" 复选框。
  • 如果后续要经常移动这台虚拟机的话,可以选中 "将虚拟磁盘拆分成多个文件" 单选按钮;如果不确定今后是否要经常移动的话,不妨也将虚拟磁盘进行拆分,这对实际操作无任何影响。

img

Info

  • 当虚拟机的硬件信息在基本设置妥当后,VM 安装向导程序会向让我们进行确认。由于还有几处信息需要修改,所以这里单击 "自定义硬件" 按钮,如图 1。
  • 顺手把 USB 控制器、声卡、打印机设备统统移除掉。移掉声卡后可以避免在输入错误后发出提示声音,确保自己在今后的实验中思绪不被打扰。然后单击 "确认" 按钮,如图 3 所示。

安装您的 Linux 系统

img

Info

在界面中,Test this media & install Red Hat Enterprise Linux 8.0.0Troubleshooting 的作用分别是校验光盘完整性后再安装以及启动救援模式。此时通过键盘的方向键选择 Install Red Hat Enterprise Linux 8.0.0 选项直接安装 Linux 系统。

img

Info

  • KeyboardLanguage Support 分别指的是键盘类型和语言支持,这两项默认都是英文的,不用修改(除非想换成中文界面)。
  • 我们首先单击 Time & Date 按钮,设置系统的时区和时间。在地图上单击中国境内即可显示出上海的当前时间,确认后单击左上角的 Done 按钮。
  • RHEL 8 系统的软件模式(SOFTWARE SELECTION)界面可以根据用户的需求来调整系统的基本环境。例如,如果想把 Linux 系统用作基础服务器、文件服务器、Web 服务器或工作站等,那么在系统安装过程中就会额外安装上一些基础软件包,以帮助用户尽快上手。
  • RHEL 8 系统提供 6 种软件基本环境,依次为 Server with GUI(带图形化的服务器)、Server(服务器)、Minimal Install(最小化安装)、Workstation(工作站)、Custom Operating System(自定义操作系统)和 Virtualization Host(虚拟化主机)。只要检查当前模式是默认的 Server with GUI 即可,右侧额外的软件包不要选择,可以在后续学习过程中慢慢安装,这样才有乐趣。

img

Info

  • 返回到安装概要界面后,右侧第一个 Installation Destination 指的是想把系统安装到哪个硬盘。此时仅仅是让我们进行确认,不需要进行任何修改。
  • Linux 系统根据 FHS(Filesystem Hierarchy Standard,文件系统层次标准)为不同的目录定义了相应的不同功能,这部分内容会在第 6 章详细介绍。
  • KDUMP 服务的配置界面。KDUMP 服务用于收集系统内核崩溃数据,但是考虑到短时间内我们并不打算调试系统内核参数,所以这里建议取消选中 Enable kdump 复选框,这可以节省约 160MB 物理内存。
  • NETWORK & HOST NAME 配置界面。首先单击右上角的开关按钮,设置成 ON(开启)状态。然后在左下角将 Host Name(主机名称)修改为 linuxprobe.com 并单击右侧的 Apply 按钮进行确认,这样可以保证后续的命令提示符前缀一致,以免产生学习上的歧义。

img

Info

  • 系统开始安装。返回到安装概要界面,剩下的 SECURITY POLICYSystem Purpose 暂时不需要配置。单击界面右下侧的 Begin Installation 按钮开始正式安装操作系统,如图 1 所示。整个安装过程大约持续 20 ~ 30 分钟。
  • 设置管理员密码。在系统安装过程中,单击 Root Password 按钮,设置管理员的密码,如图 2 所示。这个操作非常重要,密码马上会在登录系统时用到。这里需要多说一句,当在虚拟机中做实验的时候,密码无所谓强弱,但在生产环境中一定要让 root 管理员的密码足够复杂,否则系统将面临严重的安全问题。
  • 创建普通用户。单击 User Creation 按钮,为 RHEL 8 系统创建一个本地的普通用户。该账户的名字叫 linuxprobe,密码统一设置为 redhat,这个账户将会在第 5 章使用到。

img

Info

  • Subscription Manager。它指的是红帽产品订阅服务,是红帽公司的一项收费服务,我们暂时不需要,所以也就不用单击了。
  • 直接单击 License Information 按钮进入红帽产品许可信息界面,如图 3 所示。该界面中的内容大意是版权说明、双方责任、法律风险等。没什么好犹豫的,直接选中 I accept the license agreement 复选框,然后单击左上角的 Done 按钮即可。

img

Info

  • 返回到初始化界面,单击 FINISH CONFIGURATION 按钮进行确认后,系统将会进行最后一轮的重启。
  • 在大约 2 分钟的等待时间过后,便能够看到登录界面了。
  • 为了保证在学习到第 5 章前不受权限的牵绊,请同学们务必单击用户下方的 Not listed?,手动输入管理员账号(root)以及所设置的密码。

安装软件的方法

在 RPM(红帽软件包管理器)公布之前,要想在 Linux 系统中安装软件,只能采取编译源码包的方式。所以,早期安装软件是一件非常困难、耗费耐心的事情,而且大多数的服务程序仅仅提供自身的源代码,还需要运维人员编译代码后自行解决软件之间的依赖关系。因此要安装好一个服务程序,运维人员不仅需要具备丰富的知识、高超的技能,还要有良好的耐心。

常用的 RPM 软件包命令

命令 作用
rpm -ivh filename.rpm 安装软件
rpm -Uvh filename.rpm 升级软件
rpm -e filename.rpm 卸载软件
rpm -qpi filename.rpm 查询软件描述信息
rpm -qpl filename.rpm 列出软件文件信息
rpm -qf filename 查询文件属于哪个 RPM

常见的 Yum 命令

命令 作用
yum repolist all 列出所有仓库
yum list all 列出仓库中所有软件包
yum info 软件包名称 查看软件包信息
yum install 软件包名称 安装软件包
yum reinstall 软件包名称 重新安装软件包
yum update 软件包名称 升级软件包
yum remove 软件包名称 移除软件包
yum clean all 清除所有仓库缓存
yum check-update 检查可更新的软件包
yum grouplist 查看系统中已经安装的软件包组
yum groupinstall 软件包组 安装指定的软件包组
yum groupremove 软件包组 移除指定的软件包组
yum groupinfo 软件包组 查询指定的软件包组信息

系统初始化进程

Linux 系统的启动过程

init 程序的类型

  • SysV: init, CentOS 5 之前。配置文件: /etc/inittab
  • Upstart: init, CentOS 6。配置文件: /etc/inittab, /etc/init/*.conf
  • Systemd: systemd, CentOS 7。配置文件: /usr/lib/systemd/system/etc/systemd/system

初始化进程服务

systemd 与 System V init

systemd 与 System V init 的区别以及作用:

System V init 运行级别 systemd 目标名称 systemd 目标作用
0 poweroff.target 关机
1 rescue.target 救援模式
2 multi-user.target 多用户的文本界面
3 multi-user.target 多用户的文本界面
4 multi-user.target 多用户的文本界面
5 graphical.target 多用户的图形界面
6 reboot.target 重启
emergency emergency.target 救援模式

如果想要将系统默认的运行目标修改为 "多用户的文本界面" 模式,可直接用 ln 命令把多用户模式目标文件链接到 /etc/systemd/system/ 目录。

ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target

管理系统服务等常用命令

服务的启动、重启、停止、重载、查看状态等常用命令:

老系统命令 新系统命令 作用
service foo start systemctl start httpd 启动服务
service foo restart systemctl restart httpd 重启服务
service foo stop systemctl stop httpd 停止服务
service foo reload systemctl reload httpd 重新加载配置文件(不终止服务)
service foo status systemctl status httpd 查看服务状态

服务开机启动等常用命令

服务开机启动、不启动、查看各级别下服务启动状态等常用命令:

老系统命令 新系统命令 作用
chkconfig foo on systemctl enable httpd 开机自动启动
chkconfig foo off systemctl disable httpd 开机不自动启动
chkconfig foo systemctl is-enabled httpd 查看特定服务是否为开机自启动
chkconfig --list systemctl list-unit-files --type=httpd 查看各个级别下服务的启动与禁用情况

重置 root 密码

假设您刚刚接手了一台 Linux 系统,要先确定是否为 RHEL 8 系统。如果是,然后再进行下面的操作。

# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.0 (Ootpa)

img

Info

  • Linux 系统的引导界面。重启 Linux 系统主机并出现引导界面时,按下键盘上的 e 键进入内核编辑界面,如图 1 所示。
  • 内核信息的编辑界面。在 linux 参数这行的最后面追加 rd.break 参数,然后按下 Ctrl + X 组合键运行修改过的内核程序,如图 2 所示。
  • 大约 30 秒过后,系统会进入紧急救援模式,如图 3 所示。

img

Info

然后依次输入以下命令:

mount -o remount,rw /sysroot
chroot /sysroot
passwd
touch /.autorelabel

再连续按下两次 Ctrl + D 组合键盘来退出并重启。等待系统再次重启完毕后便可以使用新密码登录 Linux 系统。这一系列命令的执行效果如上图所示。

总结